package com.ruoyi.work.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 申请开票对象 work_invoice
 * 
 * @author ruoyi
 * @date 2021-12-27
 */
public class WorkInvoice extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 发票ID */
    private Long invoiceId;
    /** 发票状态 */
    @Excel(name = "发票状态")
    private String invoiceStatus;

    /** 发票类型 */
    @Excel(name = "发票类型")
    private String invoiceType;

    /** 发票抬头 */
    @Excel(name = "发票抬头")
    private String invoiceTitle;

    /** 客户名称 */
    @Excel(name = "客户名称")
    private String customerName;
    /** 客户所属公司 */
    @Excel(name = "客户所属公司",type=Excel.Type.EXPORT)
    private String companyName;
    @Excel(name="客户ID", type= Excel.Type.IMPORT,prompt="必填")
    private Long customerId;

    /** 开哪个公司 */
    @Excel(name = "开哪个公司")
    private String invoiceCompany;

    /** 开票内容 */
    @Excel(name = "开票内容")
    private String invoiceContent;

    /** 开票稿件合作金额 */
    @Excel(name = "开票稿件合作金额")
    private BigDecimal invoicePrice;

    /** 已选稿件金额 */
    @Excel(name = "已选稿件金额")
    private BigDecimal paperPrice;

    /** 税点 */
    @Excel(name = "税点")
    private BigDecimal taxPoint;

    /** 客户还款 */
    @Excel(name = "客户还款")
    private BigDecimal payback;

    /** 税务登记证号 */
    @Excel(name = "税务登记证号")
    private String taxNo;

    /** 基本开户银行 */
    @Excel(name = "基本开户银行")
    private String bankNo;

    /** 开户银行账号 */
    @Excel(name = "开户银行账号")
    private String bankAccount;

    /** 合同 */
    @Excel(name = "合同")
    private String isContract;

    /** 合同收集日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "合同收集日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date contractDate;

    /** 注册场所地址 */
    @Excel(name = "注册场所地址")
    private String registerAddress;

    /** 注册场所电话 */
    @Excel(name = "注册场所电话")
    private String registerTel;

    /** 凭证 */
    @Excel(name = "凭证")
    private String uploadFile;

    private BigDecimal actualPrice;
    private BigDecimal cost;
    private int counts;
    /** 开票时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date payTime;

    @Excel(name = "稿件所属", type = Excel.Type.EXPORT)
    private String belong;

    public String getBelong() {
        return belong;
    }

    public void setBelong(String belong) {
        this.belong = belong;
    }

    public Date getPayTime() {
        return payTime;
    }

    public void setPayTime(Date payTime) {
        this.payTime = payTime;
    }

    public BigDecimal getActualPrice() {
        return actualPrice;
    }

    public void setActualPrice(BigDecimal actualPrice) {
        this.actualPrice = actualPrice;
    }

    public BigDecimal getCost() {
        return cost;
    }

    public void setCost(BigDecimal cost) {
        this.cost = cost;
    }

    public int getCounts() {
        return counts;
    }

    public void setCounts(int counts) {
        this.counts = counts;
    }

    public void setInvoiceId(Long invoiceId)
    {
        this.invoiceId = invoiceId;
    }

    public Long getInvoiceId() 
    {
        return invoiceId;
    }
    public void setInvoiceType(String invoiceType) 
    {
        this.invoiceType = invoiceType;
    }
    public void setInvoiceStatus(String invoiceStatus)
    {
        this.invoiceStatus = invoiceStatus;
    }

    public String getInvoiceStatus()
    {
        return invoiceStatus;
    }

    public String getInvoiceType() 
    {
        return invoiceType;
    }
    public void setInvoiceTitle(String invoiceTitle) 
    {
        this.invoiceTitle = invoiceTitle;
    }

    public String getInvoiceTitle() 
    {
        return invoiceTitle;
    }
    public void setCustomerName(String customerName) 
    {
        this.customerName = customerName;
    }

    public String getCustomerName() 
    {
        return customerName;
    }
    public void setInvoiceCompany(String invoiceCompany) 
    {
        this.invoiceCompany = invoiceCompany;
    }

    public String getCompanyName() {
        return companyName;
    }

    public void setCompanyName(String companyName) {
        this.companyName = companyName;
    }

    public Long getCustomerId() {
        return customerId;
    }

    public void setCustomerId(Long customerId) {
        this.customerId = customerId;
    }

    public String getInvoiceCompany()
    {
        return invoiceCompany;
    }
    public void setInvoiceContent(String invoiceContent) 
    {
        this.invoiceContent = invoiceContent;
    }

    public String getInvoiceContent() 
    {
        return invoiceContent;
    }
    public void setInvoicePrice(BigDecimal invoicePrice) 
    {
        this.invoicePrice = invoicePrice;
    }

    public BigDecimal getInvoicePrice() 
    {
        return invoicePrice;
    }
    public void setPaperPrice(BigDecimal paperPrice) 
    {
        this.paperPrice = paperPrice;
    }

    public BigDecimal getPaperPrice() 
    {
        return paperPrice;
    }
    public void setTaxPoint(BigDecimal taxPoint) 
    {
        this.taxPoint = taxPoint;
    }

    public BigDecimal getTaxPoint() 
    {
        return taxPoint;
    }
    public void setPayback(BigDecimal payback) 
    {
        this.payback = payback;
    }

    public BigDecimal getPayback() 
    {
        return payback;
    }
    public void setTaxNo(String taxNo) 
    {
        this.taxNo = taxNo;
    }

    public String getTaxNo() 
    {
        return taxNo;
    }
    public void setBankNo(String bankNo) 
    {
        this.bankNo = bankNo;
    }

    public String getBankNo() 
    {
        return bankNo;
    }
    public void setBankAccount(String bankAccount) 
    {
        this.bankAccount = bankAccount;
    }

    public String getBankAccount() 
    {
        return bankAccount;
    }
    public void setIsContract(String isContract) 
    {
        this.isContract = isContract;
    }

    public String getIsContract() 
    {
        return isContract;
    }
    public void setContractDate(Date contractDate) 
    {
        this.contractDate = contractDate;
    }

    public Date getContractDate() 
    {
        return contractDate;
    }
    public void setRegisterAddress(String registerAddress) 
    {
        this.registerAddress = registerAddress;
    }

    public String getRegisterAddress() 
    {
        return registerAddress;
    }
    public void setRegisterTel(String registerTel) 
    {
        this.registerTel = registerTel;
    }

    public String getRegisterTel() 
    {
        return registerTel;
    }
    public void setUploadFile(String uploadFile) 
    {
        this.uploadFile = uploadFile;
    }

    public String getUploadFile() 
    {
        return uploadFile;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("invoiceId", getInvoiceId())
            .append("invoiceType", getInvoiceType())
            .append("invoiceTitle", getInvoiceTitle())
            .append("customerName", getCustomerName())
            .append("invoiceCompany", getInvoiceCompany())
            .append("invoiceContent", getInvoiceContent())
            .append("invoicePrice", getInvoicePrice())
            .append("paperPrice", getPaperPrice())
            .append("taxPoint", getTaxPoint())
            .append("payback", getPayback())
            .append("taxNo", getTaxNo())
            .append("bankNo", getBankNo())
            .append("bankAccount", getBankAccount())
            .append("isContract", getIsContract())
            .append("contractDate", getContractDate())
            .append("registerAddress", getRegisterAddress())
            .append("registerTel", getRegisterTel())
            .append("uploadFile", getUploadFile())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .toString();
    }
}
